﻿/*!
 * Copyright (c), 上海沃恩信息科技有限公司.
 * All rights reserved.
 * Licensed under BSD (https://www.pittypat.work/bsd.html).
 */

/*!
 *  Material Icons
 */
@font-face {
    font-family: 'Material Icons';
    font-style: normal;
    font-weight: 400;
    src: local('Material Icons'), local('MaterialIcons-Regular'), url(../fonts/MaterialIcons-Regular.woff2) format('woff2'), url(../fonts/MaterialIcons-Regular.woff) format('woff'), url(../fonts/MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    display: inline-block;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: 'liga';
}

/* THEME
-------------------------------------------------- */

:root {
    /* 基本色 */
    --mdc-theme-primary: #03a9f4;
    /* 基本色 */
    --theme-secondary-primary: rgba(3, 169, 244, 0.54);
    /* 强调色 */
    --mdc-theme-accent: #ff3d00;
    /* 强调色 */
    --theme-secondary-accent: rgba(255, 61, 0, 0.54);
    /* 默认的超链接 hover 和 focus 颜色 */
    --theme-link-hover: #0277bd;
    /* 通知中心背景色 */
    --theme-nc-background: #0288d1;
    /* 错误信息的颜色 */
    --theme-error: #d50000;
}

/* 字体大小与默认背景色 */
body {
    background-color: #f5f5f5;
    margin: 0;
    padding: 0;
}

/* 字体 */
body, button, input, optgroup, select, textarea {
    font-size: 14px;
    font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans GB', STHeiti, 'WenQuanYi Micro Hei', SimHei, 'Microsoft YaHei', sans-serif !important;
}

code, pre, kbd, samp {
    font-family: 'Source Code Pro', 'Courier New', 'Hiragino Sans GB', STHeiti, 'WenQuanYi Micro Hei', SimHei, 'Microsoft YaHei', sans-serif;
}

/* 深色主题的背景色与前景色 */
.mdc-theme--dark {
    color: #fff;
    background-color: #303030;
}

/* 默认的超链接样式 */
a {
    color: #03a9f4;
    color: var(--mdc-theme-primary, #03a9f4);
    text-decoration: none;
    cursor: pointer;
}

    a:hover, a:focus {
        color: #0277bd;
        color: var(--theme-link-hover, #0277bd);
    }

    a label {
        cursor: inherit;
    }

.hover:hover {
    background-color: rgba(0,0,0,0.05);
}

.theme-text-2 {
    color: rgba(0,0,0,0.54);
    color: var(--mdc-theme-text-secondary-on-light, rgba(0,0,0,0.54));
}

/* COMMON
-------------------------------------------------- */

/* 移除所有元素的 outline */
*,
*:focus,
*:active {
    outline: none !important;
}

/* 导航或通知中心打开时隐藏页面的滚动条 */
body.pt-overlapped {
    overflow: hidden;
}

@media (max-width: 479px) {
    .hidden-phone {
        display: none !important;
    }
}

@media (min-width: 480px) and (max-width: 839px) {
    .hidden-tablet {
        display: none !important;
    }
}

@media (min-width: 480px) {
    .mdc-dialog.tiny-dialog > .mdc-dialog__surface {
        min-width: 320px;
        max-width: 320px;
    }
}

@media (min-width: 512px) {
    .mdc-dialog.small-dialog > .mdc-dialog__surface {
        min-width: 480px;
        max-width: 480px;
    }
}

@media (min-width: 840px) {
    .hidden-desktop {
        display: none !important;
    }
}

/* 移除菜单上下的空白 */
.mdc-simple-menu .mdc-list {
    padding: 0;
}

.mdc-dialog__surface {
    max-height: calc(100% - 0px);
}

.mdc-dialog__body {
    color: rgba(0,0,0,0.87);
    color: var(--mdc-theme-text-primary-on-light, rgba(0,0,0,0.87));
}

.mdc-dialog__body--scrollable {
    max-height: calc(100% - 108px);
    overflow-y: auto;
    overflow-x: hidden;
    border: none;
}

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
    cursor: pointer;
}

.mdc-dialog__footer > a,
.mdc-dialog__footer > button {
    flex: 0 0 auto;
}

.pt-dialog-footer-help {
    margin-left: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.mdc-dialog__footer > div {
    flex: 1 1 auto;
}

.spin {
    animation: spin 2s infinite linear;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(359deg);
    }
}

/* MSG
-------------------------------------------------- */

/* 消息框的底层 */
.pt-page-msg {
    display: block;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: auto;
    contain: strict;
    z-index: 9000;
}

    /* 消息框的边界 */
    .pt-page-msg > * {
        position: absolute;
        top: calc(50% - 100px);
        left: calc(50% - 100px);
        border-radius: 2px;
        background-color: rgba(0,0,0,0.8);
        color: #fff;
        height: 200px;
        width: 200px;
        display: flex;
        text-decoration: none;
        font-weight: 400;
        font-style: normal;
        flex-direction: column;
        align-content: center;
        justify-content: center;
        cursor: default;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.175);
    }

    /* 消息框图标 */
    .pt-page-msg i {
        cursor: default;
        font-size: 5em;
        text-align: center;
    }

    /* 消息框文本 */
    .pt-page-msg b {
        cursor: default;
        text-align: center;
        padding: 24px;
    }

@media (min-width: 480px) {
    /* 屏幕宽度超过 360 时，宽度设置为 300 */
    .pt-page-msg > * {
        left: calc(50% - 150px);
        width: 300px;
    }
}

/* 加载状态下使用强调色和透明背景 */
.pt-page-msg-loading > * {
    background-color: transparent;
    box-shadow: none;
    color: #ff3d00;
    color: var(--mdc-theme-accent, #ff3d00);
}

/* 加载状态下的消息框图标 */
.pt-page-msg-loading i {
    font-size: 4em;
}

/* 对话框容器
-------------------------------------------------- */
.pt-menus-dialogs .mdc-dialog {
    /* 位于导航和通知中心之上，但是消息之下 */
    z-index: 3000 !important;
}

/* NAV & NOTIFICATION CENTER
-------------------------------------------------- */

/* 导航与通知中心的底层 */
.pt-nav,
.pt-nc {
    display: block;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none;
    contain: strict;
    z-index: 2000;
}

    /* 导航与通知中心的背景 */
    .pt-nav > div,
    .pt-nc > div {
        display: block;
        box-sizing: border-box;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        content: '';
        background: rgba(0, 0, 0, 0.618);
        pointer-events: none;
        opacity: 0;
        will-change: opacity;
        transition: opacity 0.3s 0ms cubic-bezier(0, 0, 0.2, 1);
        z-index: 0;
    }

    /* 导航与通知中心的主区域 */
    .pt-nav > article,
    .pt-nc > article {
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
        position: absolute;
        height: 100%;
        overflow: hidden;
        pointer-events: none;
        touch-action: none;
        background: #fff;
        background: var(--mdc-theme-background, #fff);
        box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
        will-change: transform;
        transition: transform 0.13s 0ms cubic-bezier(0, 0, 0.2, 1);
        z-index: 1;
    }

/* 打开导航或通知中心时，允许导航或通知中心底层接收 pointer 事件，以便点击背景时关闭导航或通知中心 */
.pt-nav-opened,
.pt-nc-opened {
    pointer-events: auto;
}

    /* 打开导航或通知中心时，显示背景 */
    .pt-nav-opened > div,
    .pt-nc-opened > div {
        opacity: 1;
        pointer-events: auto;
    }

    /* 设置隐藏导航或通知中心的动画 */
    .pt-nav-opened > article,
    .pt-nc-opened > article {
        transform: none;
        transition: transform 0.33s 0ms cubic-bezier(0, 0, 0.2, 1);
        pointer-events: auto;
    }

/* NAV
-------------------------------------------------- */

/* 导航列表的容器面板 */
.pt-nav-panel {
    left: 0;
    right: initial;
    width: calc(100% - 56px);
    max-width: 280px;
    transform: translateX(-107%);
}

    /* 导航工具栏和用户信息区域 */
    .pt-nav-panel > header {
        flex: 0 0 auto;
        padding: 16px;
        background-color: #03a9f4;
        background-color: var(--mdc-theme-primary, #03a9f4);
    }

        .pt-nav-panel > header a,
        .pt-nav-panel > header a:hover,
        .pt-nav-panel > header a:focus {
            color: #fff;
            color: var(--mdc-theme-text-primary-on-primary, #fff);
        }

/* 导航工具栏 */
.pt-nav-toolbar {
    display: flex;
    justify-content: flex-end;
    align-content: center;
    box-sizing: border-box;
}

    /* 导航工具栏的按钮 */
    .pt-nav-toolbar > * {
        flex: 0 0 auto;
        width: 24px;
        height: 24px;
        line-height: 24px;
        cursor: pointer;
        margin-left: 24px;
    }

/* 用户信息 */
.pt-nav-userbar > a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    box-sizing: border-box;
    margin-top: 16px;
}

    /* 用户头像 */
    .pt-nav-userbar > a > i,
    .pt-nav-userbar > a > img {
        align-self: center;
        width: 64px;
        height: 64px;
        font-size: 64px !important;
        border-radius: 50%;
    }

    /* 用户名 */
    .pt-nav-userbar > a > b {
        margin-top: 16px;
        height: 24px;
        line-height: 24px;
        font-size: 1.25em;
        font-weight: 400;
        text-align: center;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

/* 导航列表 */
.pt-nav-panel > section {
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    touch-action: pan-y;
    position: relative;
}

    /* 当没有任何导航项目时显示的消息 */
    .pt-nav-panel > section:empty::after {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 16px;
        overflow: hidden;
        box-sizing: border-box;
        text-align: center;
        content: '没有项目，请检查权限';
        font-size: 16px;
    }

/* 导航分组，也就是应用条目 */
.pt-nav-group {
    padding: 0;
}

    /* 应用或模块名称 */
    .pt-nav-group b {
        flex: 1 1 auto;
        height: 24px;
        line-height: 24px;
        font-weight: 400;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* 展开或折叠的指示图标，以及模块的指示图标 */
    .pt-nav-group > header > i,
    .pt-nav-item > i {
        flex: 0 0 auto;
        width: 24px;
        height: 24px;
        line-height: 24px;
        margin-left: 16px;
        color: rgba(0, 0, 0, 0.38);
        color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38));
    }

    /* 应用图标和名称 */
    .pt-nav-group > header {
        display: flex;
        align-items: center;
        padding: 12px 16px;
        cursor: pointer;
    }

        .pt-nav-group > header:hover {
            background-color: rgba(0,0,0,0.05);
        }

        /* 应用图标 */
        .pt-nav-group > header > span {
            flex: 0 0 auto;
            position: relative;
            width: 32px;
            height: 32px;
            margin-right: 24px;
        }

            /* 应用图标 */
            .pt-nav-group > header > span > img {
                position: absolute;
                left: 0;
                top: 0;
                width: 32px;
                height: 32px;
            }

            /* 应用默认图标 */
            .pt-nav-group > header > span i {
                position: absolute;
                left: -2px;
                top: -2px;
                width: 36px;
                height: 36px;
                font-size: 36px;
                text-decoration: none;
                color: rgba(0, 0, 0, 0.38);
                color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38));
            }

    /* 当前项目的样式 */
    .pt-nav-group.page-nav-current:not(.pt-nav-group-expanded) > header i,
    .pt-nav-group.page-nav-current:not(.pt-nav-group-expanded) > header b,
    .pt-nav-item.page-nav-current:not(.pt-nav-group-expanded) b,
    .pt-nav-item.page-nav-current:not(.pt-nav-group-expanded) i {
        color: #03a9f4;
        color: var(--mdc-theme-primary, #03a9f4);
    }

    /* 模块列表 */
    .pt-nav-group > section {
        transition: max-height 150ms 0ms cubic-bezier(0.4, 0, 1, 1);
        overflow: hidden;
    }

/* 导航项目，也就是模块项目 */
.pt-nav-item {
    display: flex;
    align-items: center;
    padding: 16px 16px 16px 72px;
    color: inherit;
    position: relative;
    transition: background-color 150ms 0ms cubic-bezier(0.4, 0, 1, 1);
}

    .pt-nav-item:hover,
    .pt-nav-item:focus {
        color: inherit;
        background-color: rgba(0,0,0,0.05);
    }

    /* 默认不显示模块的指示图标 */
    .pt-nav-item > i {
        visibility: hidden;
    }

    /* 当 hover 时显示模块的指示图标 */
    .pt-nav-item:hover > i {
        visibility: visible;
    }

/* 分组之间的分隔线 */
.pt-nav-group + hr {
    height: 0;
    margin: 0;
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

/* NOTIFICATIONS
-------------------------------------------------- */

/* 通知中心的容器面板，小屏幕下占据整个宽度 */
.pt-nc-panel {
    left: initial;
    right: 0;
    width: 100%;
    max-width: 100%;
    transform: translateX(107%);
}

@media (min-width: 600px) {
    /* 在桌面终端固定宽度为 480 */
    .pt-nc-panel {
        max-width: 480px;
    }
}

/* 通知中心工具栏 */
.pt-nc-panel > header {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    background-color: #03a9f4;
    background-color: var(--mdc-theme-primary, #03a9f4);
    color: #fff;
    padding: 16px;
}

    /* 通知中心工具栏按钮 */
    .pt-nc-panel > header > a {
        flex: 0 0 auto;
        height: 24px;
        width: 24px;
        color: #fff;
        color: var(--mdc-theme-text-primary-on-primary, #fff);
        cursor: pointer;
    }

        .pt-nc-panel > header > a:hover,
        .pt-nc-panel > header > a:focus {
            color: #fff;
            color: var(--mdc-theme-text-primary-on-primary, #fff);
        }

    /* 通知中心标题 */
    .pt-nc-panel > header > h1 {
        flex: 1 1 auto;
        margin: 0;
        padding: 0 24px;
        height: 24px;
        line-height: 24px;
        font-size: 20px;
        font-weight: 400;
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }

/* 通知分组列表区域 */
.pt-nc-panel > section {
    position: relative;
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    background-color: #0288d1;
    background-color: var(--theme-nc-background, #0288d1);
}

    /* 当没有任何通知时显示的消息 */
    .pt-nc-panel > section > div {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 16px;
        overflow: hidden;
        box-sizing: border-box;
        text-align: center;
        color: #fff;
        color: var(--mdc-theme-text-primary-on-primary, #fff);
        font-size: 16px;
    }

    /* 通知分组之间的分隔线 */
    .pt-nc-panel > section > article:not(:last-child) {
        border-bottom: 1px solid rgba(0,0,0,.15);
    }

/* 通知分组的标题栏 */
.pt-nc-group > header {
    display: flex;
    align-items: center;
    padding: 16px;
    cursor: pointer;
}

    /* 通知分组的标题 */
    .pt-nc-group > header > h2 {
        flex: 1 1 auto;
        margin: 0;
        padding-right: 16px;
        color: #fff;
        font-size: 1.125em;
        font-weight: 400;
        height: 24px;
        line-height: 24px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* 通知分组标题栏展开或折叠的指示图标 */
    .pt-nc-group > header > i {
        flex: 0 0 auto;
        color: #fff;
        height: 24px;
        width: 24px;
    }

/* 通知分组中的通知列表 */
.pt-nc-group > section {
    padding: 0 16px;
    transition: max-height 150ms 0ms cubic-bezier(0.4, 0, 1, 1);
    overflow: hidden;
}

/* 通知条目 */
.pt-nc-item {
    margin-bottom: 16px;
    background-color: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.175);
    border-radius: 2px;
}

    /* 通知发送人信息栏 */
    .pt-nc-item > header {
        display: flex;
        align-items: center;
        padding: 8px 16px;
    }

        /* 通知发送人头像容器 */
        .pt-nc-item > header > span {
            flex: 0 0 auto;
            position: relative;
            height: 40px;
            width: 40px;
            border-radius: 50%;
        }

            /* 通知发送人默认头像 */
            .pt-nc-item > header > span > img {
                position: absolute;
                left: 0;
                top: 0;
                height: 40px;
                width: 40px;
                border-radius: 50%;
            }

            /* 通知发送人默认头像 */
            .pt-nc-item > header > span > i {
                position: absolute;
                left: -4px;
                top: -4px;
                height: 48px;
                width: 48px;
                font-size: 48px;
                color: rgba(0,0,0,.38);
                color: var(--mdc-theme-text-icon-on-light, rgba(0,0,0,.38));
                cursor: default;
            }

        /* 通知发件人和发件时间 */
        .pt-nc-item > header > div {
            flex: 1 1 auto;
            padding: 0 16px;
            max-width: calc(100% - 64px);
            box-sizing: border-box;
        }

        /* 通知发件人 */
        .pt-nc-item > header b {
            display: block;
            margin: 0;
            font-size: 1em;
            font-weight: 400;
            height: 24px;
            line-height: 24px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        /* 通知发件人和发件时间 */
        .pt-nc-item > header time {
            display: block;
            margin: 0;
            font-size: 12px;
            font-weight: 400;
            color: rgba(0,0,0,0.62);
            color: var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,0.62));
            height: 16px;
            line-height: 16px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        /* 关闭通知（将通知标记为已读）的按钮 */
        .pt-nc-item > header > a {
            flex: 0 0 auto;
            height: 24px;
            width: 24px;
            color: rgba(0,0,0,0.38);
            color: var(--mdc-theme-text-icon-on-light,rgba(0,0,0,0.38));
            cursor: pointer;
        }

    /* 通知内容 */
    .pt-nc-item > a {
        display: block;
        padding: 8px 16px;
        cursor: pointer;
        color: inherit;
        background-color: #f5f5f5;
        border-bottom-left-radius: 2px;
        border-bottom-right-radius: 2px;
    }

        /* 通知主题 */
        .pt-nc-item > a > b {
            display: block;
            margin: 0 0 8px 0;
            height: 20px;
            line-height: 20px;
            color: rgba(0,0,0,0.62);
            color: var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,0.62));
            font-weight: 400;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        /* 通知紧急程度图标 */
        .pt-nc-item > a > i {
            display: block;
            color: #ff3d00;
            color: var(--mdc-theme-accent,#ff3d00);
            width: 20px;
            height: 20px;
            line-height: 20px;
        }

        /* 通知摘要 */
        .pt-nc-item > a > s {
            display: block;
            margin: -20px 0 0 0;
            padding: 0;
            max-height: 100px;
            line-height: 20px;
            text-indent: 2em;
            overflow: hidden;
            font-style: normal;
            font-weight: 400;
            text-decoration: none;
        }

    /* 普通等级的紧急程度图标 */
    .pt-nc-item.pt-nc-urgency-1 > a > i {
        color: rgba(0, 0, 0, 0.38);
        color: var(--mdc-theme-text-icon-on-light,rgba(0, 0, 0, 0.38));
    }

    /* 紧急和特急等级的紧急程度图标 */
    .pt-nc-item.pt-nc-urgency-2 > a > i,
    .pt-nc-item.pt-nc-urgency-4 > a > i {
        color: #ff3d00;
        color: var(--mdc-theme-accent,#ff3d00);
    }

/* HEADER
-------------------------------------------------- */
body > header {
    position: fixed;
    top: 0;
    left: 0;
    box-sizing: border-box;
    width: 100%;
    display: flex;
    flex-direction: column;
    color: #fff;
    color: var(--mdc-theme-text-primary-on-primary, #fff);
    background-color: #03a9f4;
    background-color: var(--mdc-theme-primary, #03a9f4);
    z-index: 1000;
}

/* toolbar */
.pt-page-toolbar {
    display: flex;
    padding: 16px;
}

    .pt-page-toolbar > button.mdc-ripple-surface {
        display: flex;
        justify-content: center;
        align-items: center;
        flex: 0 0 auto;
        padding: 0;
        border: none;
        background: none;
        color: inherit;
        cursor: pointer;
    }

.pt-nav-toggle {
    margin-right: 32px;
}

.pt-page-title ~ button {
    margin-left: 24px;
}

.pt-nav-toggle,
.pt-nc-toggle {
    display: none;
}

    .pt-nc-toggle > b {
        position: absolute;
        display: none;
        top: -12px;
        right: -12px;
        min-width: 20px;
        max-width: 34px;
        height: 20px;
        line-height: 20px;
        box-sizing: border-box;
        padding: 0 3px;
        color: #fff;
        background-color: #ff3d00;
        border-radius: 12px;
        text-align: center;
        font-weight: 400;
        font-size: 12px;
    }

.pt-page-title {
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    font-size: 20px;
    font-weight: 500;
    height: 24px;
    line-height: 24px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pt-page-menu {
    top: 48px;
    right: 8px;
}

.mdc-simple-menu {
    box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
}

    .mdc-simple-menu .mdc-list-item.disabled,
    .mdc-simple-menu .mdc-list-item.disabled > * {
        color: rgba(0,0,0,0.38);
        color: var(--mdc-theme-text-disabled-on-background, rgba(0,0,0,0.38));
    }

    .mdc-simple-menu .mdc-list-item:not(.disabled):hover {
        background-color: rgba(0,0,0,0.05);
    }

/* MAIN
-------------------------------------------------- */
.pt-main {
    margin: 56px 0 0 0;
    padding: 16px;
    display: block;
}

/* PINNED NAV
-------------------------------------------------- */
/* 在小屏幕下，固定或取消固定按钮是无效的 */
.pt-nav-pin {
    display: none;
}

@media (min-width: 840px) {
    .pt-nav-pinned > header {
        padding-left: 280px;
    }

    .pt-nav-pinned > .pt-main {
        margin-left: 280px;
    }

    .pt-nav-pinned .pt-nav-panel {
        transform: none;
        pointer-events: auto;
        box-shadow: none;
        border-right: 1px solid rgba(0, 0, 0, 0.12);
    }

    .pt-nav-pinned .pt-nav-toggle {
        display: none !important;
    }

    .pt-nav-pinned.pt-overlapped {
        overflow: auto;
    }

    .pt-nav-pinned .pt-nav-opened {
        pointer-events: none;
    }

        .pt-nav-pinned .pt-nav-opened > div {
            opacity: 0;
            pointer-events: none;
        }

    .pt-nav-pin {
        display: block;
    }

    .pt-nav-pinned .pt-nav-panel > header {
        display: flex;
        align-items: center;
        padding: 8px 16px;
    }

    .pt-nav-pinned .pt-nav-userbar {
        flex: 0 0 auto;
        order: 0;
    }

    .pt-nav-pinned .pt-nav-toolbar {
        flex: 1 1 auto;
        order: 1;
    }

    /* 用户头像 */
    .pt-nav-pinned .pt-nav-userbar > a {
        margin-top: 0;
    }

        /* 用户头像 */
        .pt-nav-pinned .pt-nav-userbar > a > i,
        .pt-nav-pinned .pt-nav-userbar > a > img {
            width: 40px;
            height: 40px;
            font-size: 40px !important;
            background-size: 40px;
        }

        /* 用户名 */
        .pt-nav-pinned .pt-nav-userbar > a > b {
            display: none;
        }
}

/* ROW
-------------------------------------------------- */

.pt-row > header {
    display: flex;
    align-items: center;
}

    .pt-row > header > * {
        box-sizing: border-box;
        min-height: 24px;
    }

.pt-row-icon {
    display: flex;
    flex: 0 0 auto;
    width: 72px;
    padding: 12px 16px;
}

    .pt-row-icon > * {
        padding: 0;
        width: 24px;
        height: 24px;
        cursor: default;
        color: rgba(0, 0, 0, 0.38);
        color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38));
    }

    .pt-row-icon > .big {
        width: 40px;
        height: 40px;
        font-size: 40px;
    }

.pt-row-info {
    padding: 12px 0;
    overflow: hidden;
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
}

    .pt-row-info > * {
        display: block;
        width: 100%;
        box-sizing: content-box;
    }

@media (min-width:480px) {
    .pt-row-info > * {
        flex: 1 1 auto;
        width: 1em;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .pt-row-info > :not(:last-child) {
        padding-right: 16px;
    }
}

.pt-row-info > * > span,
.pt-row-info > * > a,
.pt-row-info > * > label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    height: 20px;
    line-height: 20px;
}

.pt-row-info > * > p {
    margin: 0;
    line-height: 20px;
}

.pt-row-more {
    flex: 0 0 auto;
    display: flex;
    padding: 12px 16px;
    display: flex;
    align-items: center;
}

    .pt-row-more > * {
        width: 24px;
        height: 24px;
        font-size: 24px;
        border: none;
        background: none;
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(0, 0, 0, 0.38);
        color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38));
        cursor: default;
    }

    .pt-row-more > :not(:last-child) {
        margin-right: 16px;
    }

    .pt-row-more > button {
        color: #03a9f4;
        color: var(--mdc-theme-primary, #03a9f4);
        cursor: pointer;
    }

.pt-main > .pt-row > section {
    border-radius: 2px;
    background-color: #fff;
    background-color: var(--mdc-theme-background, #fff);
}

@media (min-width:480px) {
    .pt-row .pt-row > section {
        padding-left: 56px;
    }
}

.pt-row hr {
    height: 0;
    margin: 0;
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

@media (min-width:480px) {
    .pt-row .w-1 {
        flex: 0 0 auto !important;
        width: 1em !important;
    }

    .pt-row .w-2 {
        flex: 0 0 auto !important;
        width: 2em !important;
    }

    .pt-row .w-3 {
        flex: 0 0 auto !important;
        width: 3em !important;
    }

    .pt-row .w-4 {
        flex: 0 0 auto !important;
        width: 4em !important;
    }

    .pt-row .w-5 {
        flex: 0 0 auto !important;
        width: 5em !important;
    }

    .pt-row .w-6 {
        flex: 0 0 auto !important;
        width: 6em !important;
    }

    .pt-row .w-7 {
        flex: 0 0 auto !important;
        width: 7em !important;
    }

    .pt-row .w-8 {
        flex: 0 0 auto !important;
        width: 8em !important;
    }

    .pt-row .w-9 {
        flex: 0 0 auto !important;
        width: 9em !important;
    }

    .pt-row .w-10 {
        flex: 0 0 auto !important;
        width: 10em !important;
    }

    .pt-row .w-11 {
        flex: 0 0 auto !important;
        width: 11em !important;
    }

    .pt-row .w-12 {
        flex: 0 0 auto !important;
        width: 12em !important;
    }

    .pt-row .w-13 {
        flex: 0 0 auto !important;
        width: 13em !important;
    }

    .pt-row .w-14 {
        flex: 0 0 auto !important;
        width: 14em !important;
    }

    .pt-row .w-15 {
        flex: 0 0 auto !important;
        width: 15em !important;
    }

    .pt-row .w-16 {
        flex: 0 0 auto !important;
        width: 16em !important;
    }

    .pt-row .w-17 {
        flex: 0 0 auto !important;
        width: 17em !important;
    }

    .pt-row .w-18 {
        flex: 0 0 auto !important;
        width: 18em !important;
    }

    .pt-row .w-19 {
        flex: 0 0 auto !important;
        width: 19em !important;
    }

    .pt-row .w-20 {
        flex: 0 0 auto !important;
        width: 20em !important;
    }

    .pt-row .w-25 {
        flex: 0 0 auto !important;
        width: 25em !important;
    }

    .pt-row .w-30 {
        flex: 0 0 auto !important;
        width: 30em !important;
    }

    .pt-row .w-35 {
        flex: 0 0 auto !important;
        width: 35em !important;
    }

    .pt-row .w-40 {
        flex: 0 0 auto !important;
        width: 40em !important;
    }

    .pt-row .w-45 {
        flex: 0 0 auto !important;
        width: 45em !important;
    }

    .pt-row .w-50 {
        flex: 0 0 auto !important;
        width: 50em !important;
    }

    .pt-row .w-60 {
        flex: 0 0 auto !important;
        width: 60em !important;
    }
}

.pt-order-field {
    flex: 0 0 auto;
    display: flex !important;
    justify-content: flex-start;
    align-items: center;
}

    .pt-order-field > .material-icons {
        height: 20px;
        line-height: 20px;
    }

.pt-row-toggle {
    cursor: pointer;
}

    .pt-row-toggle.disabled {
        color: rgba(0,0,0,0.38) !important;
        color: var(--mdc-theme-text-disabled-on-light, rgba(0,0,0,0.38)) !important;
    }

/* FIELDS
-------------------------------------------------- */

.pt-fields {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    padding: 0;
    margin: 0;
}

.pt-field {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    padding: 4px 0;
    border-bottom: 1px solid #e5e5e5;
    transition: border-bottom-color 150ms 0ms cubic-bezier(0.4, 0, 1, 1);
}

    /* 为获得焦点的 label 添加主题色的下划线 */
    .pt-field.focused {
        border-bottom-color: #03a9f4;
        border-bottom-color: var(--mdc-theme-primary, #03a9f4);
    }

    /* 未通过验证字段的下划线颜色 */
    .pt-field.invalid {
        border-bottom-color: #d50000;
        border-bottom-color: var(--theme-error, #d50000);
    }

        /* 未通过验证字段标签颜色 */
        .pt-field.invalid > label > b {
            color: #d50000;
            color: var(--theme-error, #d50000);
        }

    /* 已禁用字段标签颜色 */
    .pt-field.disabled > label > b {
        color: rgba(0, 0, 0, 0.38);
        color: var(--mdc-theme-text-disabled-on-background,rgba(0, 0, 0, 0.38));
    }

    .pt-field > label {
        flex: 1 1 auto;
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
    }

    .pt-field > :not(label) {
        flex: 0 0 auto;
    }

    /* 总是使用 b 作为标签文本或标签图标，标签文本最长 5em，加上 required 的 '*' 长度为 82px */
    .pt-field > label > b {
        flex: 0 0 auto;
        width: 82px;
        height: 48px;
        line-height: 48px;
        margin-right: 16px;
        overflow: hidden;
        box-sizing: border-box;
        font-weight: 400;
        color: rgba(0, 0, 0, 0.54);
        color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));
    }

        /* 标签图标的宽度，24+12 */
        .pt-field > label > b.material-icons {
            width: 36px;
            /* 用于确定 '*' 的位置 */
            position: relative;
        }

    /* 必填字段 '*' 的颜色 */
    .pt-field.required > label > b::after {
        font-family: 'Material Icons';
        font-weight: normal;
        font-style: normal;
        font-size: 12px;
        line-height: 1;
        display: inline-block;
        text-transform: none;
        letter-spacing: normal;
        word-wrap: normal;
        white-space: nowrap;
        direction: ltr;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility;
        -moz-osx-font-smoothing: grayscale;
        font-feature-settings: 'liga';
        color: #ff3d00;
        color: var(--mdc-theme-accent, #ff3d00);
        content: '\e838';
    }

    /* 标签图标 '*' 的位置 */
    .pt-field.required > label > b.material-icons::after {
        position: absolute;
        top: 18px;
        left: 24px;
    }

    /* 静态文本 */
    .pt-field > label > s,
    /* 输入框 */
    .pt-field > label > input[type="date"],
    .pt-field > label > input[type="datetime"],
    .pt-field > label > input[type="datetime-local"],
    .pt-field > label > input[type="password"],
    .pt-field > label > input[type="email"],
    .pt-field > label > input[type="tel"],
    .pt-field > label > input[type="search"],
    .pt-field > label > input[type="color"],
    .pt-field > label > input[type="month"],
    .pt-field > label > input[type="number"],
    .pt-field > label > input[type="time"],
    .pt-field > label > input[type="url"],
    .pt-field > label > input[type="week"],
    .pt-field > label > input[type="text"],
    /* 选择框 */
    .pt-field > label > select,
    /* 多行输入框 */
    .pt-field > label > textarea {
        flex: 1 1 auto;
        height: 48px;
        line-height: 48px;
        padding: 0;
        margin: 0;
        border: 0;
        box-sizing: border-box;
        background: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        text-decoration: none;
        font-weight: 400;
        min-width: 0;
        width: 100%;
        display: flex;
    }

    /* 允许静态文本换行 */
    .pt-field > label > s {
        height: auto;
        line-height: 20px;
        overflow: visible;
        overflow-wrap: break-word;
        word-break: break-all;
        word-wrap: break-word;
    }

    /* 多行文本 */
    .pt-field > label > textarea {
        height: auto;
        min-height: 20px;
        line-height: 20px;
        margin-top: 16px;
        margin-bottom: 16px;
        resize: none;
    }

    /* 选择框下拉指示符 */
    .pt-field > label > select {
        padding-right: 24px;
        cursor: pointer;
        background-repeat: no-repeat;
        background-position: right center;
        background-image: url(data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%230%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.54%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E);
    }

        /* 禁用状态下文本框等的背景色 */
        .pt-field > label > input[type="date"]:disabled,
        .pt-field > label > input[type="datetime"]:disabled,
        .pt-field > label > input[type="datetime-local"]:disabled,
        .pt-field > label > input[type="password"]:disabled,
        .pt-field > label > input[type="email"]:disabled,
        .pt-field > label > input[type="tel"]:disabled,
        .pt-field > label > input[type="search"]:disabled,
        .pt-field > label > input[type="color"]:disabled,
        .pt-field > label > input[type="month"]:disabled,
        .pt-field > label > input[type="number"]:disabled,
        .pt-field > label > input[type="time"]:disabled,
        .pt-field > label > input[type="url"]:disabled,
        .pt-field > label > input[type="week"]:disabled,
        .pt-field > label > input[type="text"]:disabled,
        .pt-field > label > select:disabled,
        .pt-field > label > textarea:disabled {
            background-color: transparent;
        }

.pt-fields > .pt-fields {
    margin-left: 2em;
}

.pt-fields > h1,
.pt-fields > h2,
.pt-fields > h3,
.pt-fields > h4,
.pt-fields > h5,
.pt-fields > h6 {
    padding: 16px 0 0 0;
    margin: 0;
    font-size: 1em;
    font-weight: 500;
}

.pt-fields > hr {
    display: none;
}

@media (min-width:480px) {
    .pt-fields-horiz {
        flex-direction: row;
        align-items: center;
    }

        .pt-fields-horiz > hr {
            box-sizing: border-box;
            display: block;
            flex: 0 0 auto;
            width: 32px;
            height: 24px;
            border: none;
            background: none;
        }

        .pt-fields-horiz > .pt-field > label > textarea {
            height: 48px;
            margin-top: 0;
            margin-bottom: 0;
        }
}

.pt-switch-text {
    height: 48px !important;
    line-height: 48px !important;
}
